#ifndef _EGOS_I_TASK_H_
#define _EGOS_I_TASK_H_

typedef enum
{
	EGOS_TASK_STATE_ACTIVE,
	EGOS_TASK_STATE_INACTIVE,
	EGOS_TASK_STATE_BLOCKED
}EGOS_TASK_STATE;

typedef struct
{
	EGOS_TASK_STATE 	state;
	EgosTaskId			id;
	DWORD				priority;
	DWORD				activePriority;	// for priority inheritance
	DWORD				context[10];	// for context switching!!
	void (*_taskFunc)(void*);

}EGOS_TaskControlBlock;

extern EGOS_TaskControlBlock *allTasks;

void EgosInitAllTasks();

#endif
